library(dados)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.5 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.1 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(reactable)

Reactable

dados_sumarizados <- pinguins |> 
  group_by(especie, ano) |> 
  summarise(media_comprimento_bico = mean(comprimento_bico, na.rm = TRUE),
            media_massa_corporal = mean(massa_corporal, na.rm = TRUE)) |> 
  ungroup() |> 
  pivot_wider(names_from = ano, 
              values_from = c(media_comprimento_bico, media_massa_corporal))
## `summarise()` has grouped output by 'especie'. You can override using the
## `.groups` argument.
dados_sumarizados |> 
  reactable(sortable = TRUE, searchable = TRUE,
    columnGroups = list(
      colGroup(name = "Média comprimento de Bico (em milímetros)", c("media_comprimento_bico_2007", "media_comprimento_bico_2008", "media_comprimento_bico_2009")),
      colGroup(name = "Média massa corporal (em gramas)", c("media_massa_corporal_2007", "media_massa_corporal_2008", "media_massa_corporal_2009")
      )
    ),
    columns = list(
      especie = colDef(name = "Espécie"),
      media_comprimento_bico_2007 = colDef(name = "2007", format = colFormat(digits = 2, locales = "pt")),
      media_comprimento_bico_2008 = colDef(name = "2008", format = colFormat(digits = 2, locales = "pt")),
      media_comprimento_bico_2009 = colDef(name = "2009", format = colFormat(digits = 2, locales = "pt")),
      media_massa_corporal_2007 = colDef(name = "2007", format = colFormat(digits = 0, separators = TRUE, locales = "pt")),
            media_massa_corporal_2008 = colDef(name = "2008", format = colFormat(digits = 0, separators = TRUE, locales = "pt")),
            media_massa_corporal_2009 = colDef(name = "2009", format = colFormat(digits = 0, separators = TRUE, locales = "pt"))
    )
  )

Plotly

grafico_1 <- pinguins |> 
  ggplot() +
  aes(x = comprimento_bico, y = profundidade_bico) +
  geom_point(aes(color = especie)) +
  theme_bw()


grafico_1
## Warning: Removed 2 rows containing missing values (geom_point).

plotly::ggplotly(grafico_1, tooltip = c("x", "y", "especie"))
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
fig <- plot_ly(data = pinguins, x = ~comprimento_bico, y = ~profundidade_bico, color = ~especie)


fig
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
## Warning: Ignoring 2 observations

Highcharter

library(highcharter)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
hchart(pinguins, type = "scatter", hcaes(x = comprimento_bico, y = profundidade_bico,  group = especie))